<div class="container">
    <h2>API 接口文档</h2>

    <div class="sidebar">
        <h3>目录</h3>
        <ul>
            <li><a href="#user-api">用户管理 API</a></li>
            <li><a href="#post-api">文章管理 API</a></li>
            <li><a href="#category-api">分类管理 API</a></li>
            <li><a href="#comment-api">评论管理 API</a></li>
        </ul>
    </div>

    <div class="endpoint" id="user-api">
        <h3>用户管理 API</h3>

        <div class="endpoint">
            <h4>GET /api/users</h4>
            <p><strong>描述:</strong> 获取所有用户列表</p>
            <p><strong>响应:</strong> 用户对象数组</p>
            <details>
                <summary>示例响应</summary>
                <pre>[{
  "id": 1,
  "name": "张三",
  "email": "zhangsan@example.com"
}, {
  "id": 2,
  "name": "李四",
  "email": "lisi@example.com"
}]</pre>
            </details>
        </div>

        <div class="endpoint">
            <h4>GET /api/users/:id</h4>
            <p><strong>描述:</strong> 根据 ID 获取特定用户</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 用户对象</p>
        </div>

        <div class="endpoint">
            <h4>POST /api/users</h4>
            <p><strong>描述:</strong> 创建新用户</p>
            <p><strong>请求体:</strong> 包含 name 和 email 的 JSON 对象</p>
            <p><strong>响应:</strong> 新创建的用户对象</p>
            <details>
                <summary>示例请求</summary>
                <pre>{
  "name": "新用户",
  "email": "newuser@example.com"
}</pre>
            </details>
        </div>

        <div class="endpoint">
            <h4>PUT /api/users/:id</h4>
            <p><strong>描述:</strong> 更新指定 ID 的用户</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>请求体:</strong> 包含要更新字段的 JSON 对象</p>
            <p><strong>响应:</strong> 更新后的用户对象</p>
        </div>

        <div class="endpoint">
            <h4>DELETE /api/users/:id</h4>
            <p><strong>描述:</strong> 删除指定 ID 的用户</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 删除成功的消息</p>
        </div>
    </div>

    <div class="endpoint" id="post-api">
        <h3>文章管理 API</h3>

        <div class="endpoint">
            <h4>GET /api/posts</h4>
            <p><strong>描述:</strong> 获取所有文章列表</p>
            <p><strong>响应:</strong> 文章对象数组，按创建时间倒序排列</p>
        </div>

        <div class="endpoint">
            <h4>GET /api/posts/:id</h4>
            <p><strong>描述:</strong> 根据 ID 获取特定文章</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 文章对象</p>
        </div>

        <div class="endpoint">
            <h4>POST /api/posts</h4>
            <p><strong>描述:</strong> 创建新文章</p>
            <p><strong>请求体:</strong> 包含 title、content、author 和 categoryId 的 JSON 对象</p>
            <p><strong>响应:</strong> 新创建的文章对象</p>
        </div>

        <div class="endpoint">
            <h4>PUT /api/posts/:id</h4>
            <p><strong>描述:</strong> 更新指定 ID 的文章</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>请求体:</strong> 包含要更新字段的 JSON 对象</p>
            <p><strong>响应:</strong> 更新后的文章对象</p>
        </div>

        <div class="endpoint">
            <h4>DELETE /api/posts/:id</h4>
            <p><strong>描述:</strong> 删除指定 ID 的文章</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 删除成功的消息</p>
        </div>
    </div>

    <div class="endpoint" id="category-api">
        <h3>分类管理 API</h3>

        <div class="endpoint">
            <h4>GET /api/categories</h4>
            <p><strong>描述:</strong> 获取所有分类列表</p>
            <p><strong>响应:</strong> 分类对象数组</p>
        </div>

        <div class="endpoint">
            <h4>GET /api/categories/:id</h4>
            <p><strong>描述:</strong> 根据 ID 获取特定分类</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 分类对象</p>
        </div>

        <div class="endpoint">
            <h4>POST /api/categories</h4>
            <p><strong>描述:</strong> 创建新分类</p>
            <p><strong>请求体:</strong> 包含 name 和 description 的 JSON 对象</p>
            <p><strong>响应:</strong> 新创建的分类对象</p>
        </div>

        <div class="endpoint">
            <h4>PUT /api/categories/:id</h4>
            <p><strong>描述:</strong> 更新指定 ID 的分类</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>请求体:</strong> 包含要更新字段的 JSON 对象</p>
            <p><strong>响应:</strong> 更新后的分类对象</p>
        </div>

        <div class="endpoint">
            <h4>DELETE /api/categories/:id</h4>
            <p><strong>描述:</strong> 删除指定 ID 的分类</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 删除成功的消息</p>
        </div>
    </div>

    <div class="endpoint" id="comment-api">
        <h3>评论管理 API</h3>

        <div class="endpoint">
            <h4>GET /api/comments</h4>
            <p><strong>描述:</strong> 获取所有评论列表</p>
            <p><strong>响应:</strong> 评论对象数组，按创建时间倒序排列</p>
        </div>

        <div class="endpoint">
            <h4>GET /api/posts/:postId/comments</h4>
            <p><strong>描述:</strong> 获取指定文章的所有评论</p>
            <p><strong>参数:</strong> postId (路径参数)</p>
            <p><strong>响应:</strong> 评论对象数组，按创建时间倒序排列</p>
        </div>

        <div class="endpoint">
            <h4>GET /api/comments/:id</h4>
            <p><strong>描述:</strong> 根据 ID 获取特定评论</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 评论对象</p>
        </div>

        <div class="endpoint">
            <h4>POST /api/comments</h4>
            <p><strong>描述:</strong> 创建新评论</p>
            <p><strong>请求体:</strong> 包含 content、author 和 postId 的 JSON 对象</p>
            <p><strong>响应:</strong> 新创建的评论对象</p>
        </div>

        <div class="endpoint">
            <h4>PUT /api/comments/:id</h4>
            <p><strong>描述:</strong> 更新指定 ID 的评论</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>请求体:</strong> 包含要更新字段的 JSON 对象</p>
            <p><strong>响应:</strong> 更新后的评论对象</p>
        </div>

        <div class="endpoint">
            <h4>DELETE /api/comments/:id</h4>
            <p><strong>描述:</strong> 删除指定 ID 的评论</p>
            <p><strong>参数:</strong> id (路径参数)</p>
            <p><strong>响应:</strong> 删除成功的消息</p>
        </div>
    </div>

    <h3>使用 curl 测试 API</h3>
    <pre>curl -X POST -H "Content-Type: application/json" -d '{"name":"新用户","email":"newuser@example.com"}' http://localhost:3000/api/users</pre>
    <pre>curl -X POST -H "Content-Type: application/json" -d '{"title":"新文章","content":"文章内容","author":"作者","categoryId":1}' http://localhost:3000/api/posts</pre>
    <pre>curl -X POST -H "Content-Type: application/json" -d '{"name":"新分类","description":"分类描述"}' http://localhost:3000/api/categories</pre>
    <pre>curl -X POST -H "Content-Type: application/json" -d '{"content":"评论内容","author":"评论者","postId":1}' http://localhost:3000/api/comments</pre>
</div>